The present invention relates to wireless access to data files, and more particularly to such wireless access over a communications channel susceptible to sudden and dramatic changes in quality of service and availability of service. Even more particularly, the present invention relates to an application-directed variable-granularity approach for caching and consistency management for use over a communications channel susceptible to sudden and dramatic changes in quality of service and availability of service.
In recent years there has been an increase in the number of commercially available local and wide area wireless networking technologies that provide data rates in the Kbps to Mbps range, e.g., ARDIS, RAM, CDPD, Metricom, RangeLan2, and Wavelan. Mobility and network connectivity are thus no longer mutually exclusive, and partial (or intermittent) connectivity is expected to become a predominant networking mode for mobile computing in the near future. While most current commercial mobile computing applications are oriented towards personal communications, e.g., E-mail, fax, telephony, etc., future applications are expected to utilize wireless bandwidth for both information access and personal communications. There is thus a critical need for efficient data access mechanisms during wireless operation.
Heretofore, mobile file systems have typically assumed two extreme modes of operation: full network connection to a high bandwidth wired network when, for example, a portable computer is docked to a network access point; or complete network disconnection when, for example, the portable computer is undocked from the network access point. When fully connected, a file system hoards (or predictively caches) files that it predicts a user will need during completely disconnected operation. In other words, during periods when the portable computer is docked, all of the files needed by the user are hoarded (or loaded) into the portable computer for use when the portable computer is undocked. When the portable computer is disconnected, the file system performs reads from, and writes to, the hoarded copies of the files.
Among others, the following two problems arise as a consequence of using only these two extreme modes of operation: (a) a critical file may not be hoarded and this may stall the work of the disconnected user until he/she again obtains a full network connection, and (b) files may end up becoming inconsistent upon resumption of a full network connection due to writes to both the hoarded copy on the portable computer and to the copy on the file system, i.e., the backbone copy, while the portable computer is disconnected. Neither of these problems can be prevented (or even solved satisfactorily) using heretofore known mobile file systems because communication with such file systems is precluded while the portable computer is disconnected, i.e., undocked.
A further problem with state of the art mobile file systems is that when fully connected with bandwidth dedicated to the portable computer, the portable computer may not make full and efficient use of such bandwidth. For example, the bandwidth may not be fully or efficiently utilized while the portable computer waits for user input, thus wasting valuable bandwidth. On the other hand, if such bandwidth is not dedicated to the portable computer, but rather shared amongst several computers, the need to hoard copies of all of the files the user may wish to access may similarly result in significant wasted bandwidth. Specifically, many files or parts of files that will not in fact be used while the portable computer is disconnected are typically hoarded either because, absent a priori knowledge of the user's needs, the mobile file system concludes that they might be used (i.e., because the mobile file system incorrectly predicts that they will be used), or because they are parts of files, other parts of which will be used.